#ifndef IMAGECONSUMER_H
#define IMAGECONSUMER_H
/*!
 * \file imageconsumer.h
 * \brief
 * \version 1.0
 */
#include <QMutex>
#include <QDebug>
#include <opencv2/opencv.hpp>

/*! \namespace cv
 *
 * espace de nommage regroupant les fonctionnalites de opencv,
 * notamment sur les traitement d'images.
 *
 */
using namespace cv;
/**
 * \brief Consommateur d'images du Cammanager
 * \version 1.0
 * Classe mere de tous les consommateurs d'images fournies par CamManager
 */
class ImageConsumer
{
protected:
    IplImage *cvimageinter;
    QMutex locker;

public:
    /**
      * \fn ImageConsumer()
      * \brief Constructeur
      * Constructeur de la classe ImageConsumer
      */
    ImageConsumer();
    /**
      * \fn ImageConsumer()
      * \brief Destructeur
      * Destructeur de la classe ImageConsumer
      */
    ~ImageConsumer();
    /**
      * \fn bool setImage(const IplImage *const image)
      * \brief envoi d'images
      * Fonction appale pour enregistrer une image chez un consommateur
      * \param image : pointeur vers l'image qui doit etre copiee et fournie au consommateur
      * \return boolean indiquant si l'image a ete transmise ou non
      */
    bool setImage(const IplImage *const image);
};

#endif // IMAGECONSUMER_H
